﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	int arr[50] = { 0 };
//	for (int i = 0; i < n; i++)
//	{
//		scanf("%d", &arr[i]);
//	}
//	int del = 0;
//	int flag = 0;
//	scanf("%d", &del);
//
//	for (int i = 0; i < n ; i++)
//	{
//		while(arr[i] == del)
//		{
//			i = i + 1;
//		}
//		if (i < n) {
//			printf("%d ", arr[i]);
//		}
//	}
//	return 0;
//}

//使用联合体的知识，写一个函数判断当前机器是大端还是小端，
//如果是小端返回1，如果是大端返回0.

//union MyUnion
//{
//	int a;
//	char n;
//};
//
//int main()
//{
//
//	union MyUnion u1 = { 0 };
//	u1.a = 1;
//	if (u1.n == 1)
//	{
//		printf("小端字节序\n");
//	}
//	else
//	{
//		printf("大端字节序\n");
//	}
//	return 0;
//}


//union Un
//{
//	char c;
//	int i;
//};
//
//int main()
//{
//	union Un un = { 0 };
//	printf("%d\n", sizeof(union Un));
//	return 0;
//}

//代码一
//union Un
//{
//	char c;
//	int i;
//};
//
//int main()
//{
//	union Un un = { 0 };
//	printf("%p\n", &(un.i));
//	printf("%p\n", &(un.c));
//	printf("%p\n", &un);
//	return 0;
//}

//代码2 
//#include <stdio.h>
////联合类型的声明 
//union Un
//{
//	char c;
//	int i;
//};
//int main()
//{
//	//联合变量的定义 
//	union Un un = { 0 };
//	un.i = 0x11223344;
//	un.c = 0x55;
//	printf("%x\n", un.i);
//	return 0;
//}

//#include <stdio.h>
//union Un1
//{
//	char c[5];
//	int i;
//};
//union Un2
//{
//	short c[7];
//	int i;
//};
//int main()
//{
//	//下⾯输出的结果是什么？ 
//	printf("%d\n", sizeof(union Un1));//8
//	printf("%d\n", sizeof(union Un2));//16
//	return 0;
//}

//struct gift_list
//{
//	//公共属性
//	int stock_number;//库存量
//	double price;//价格
//	int item_type;//商品类型
//
//	//特殊属性
//	char title[20];
//	char author[20];
//	int num_pages;//页数
//
//	char design[30];//设计
//	int colors; //颜色
//	int size; //尺寸
//};

//struct gift_list
//{
//	int stock_number;
//	double price;
//	int item_type;
//
//	union 
//	{
//		struct
//		{
//			char title[20];
//			char author[20];
//			int num_pages;
//		}book;
//		struct
//		{
//			char design[30];
//		}mug;
//		struct
//		{
//			char design[30];
//			int colors;
//			int sizes;
//		}shirt;
//	}item;
//};


#include<stdlib.h>
#include<string.h>
#include<assert.h>
int main()
{
	int* pstr[3] = { 0 };
	pstr[0] =(int*)malloc(5 * sizeof(int));
	pstr[1] =(int*)malloc(5 * sizeof(int));
	pstr[2] =(int*)malloc(5 * sizeof(int));
	assert(&pstr);
	
	for (int i = 0; i < 3; i++)
	{
		for (int j = 0; j < 5; j++)
		{
			*(*(pstr + i) + j) = j;
		}
	}
	for (int i = 0; i < 3; i++)
	{
		for (int j = 0; j < 5; j++)
		{
			printf("%d ", pstr[i][j]);
		}
		printf("\n");
	}
	return 0;
}
